/* For detailed instructions, see README file */


OPTIONS SOURCE MACROGEN SYMBOLGEN MPRINT COMPRESS=YES REUSE=YES SORTSIZE= MAX;




/*=========================================*/
/*Select path where files are saved*/
libname OP "INSERT PATH";
/*Select path to save logs*/
%let LOG_PATH= INSERT PATH\Table5_A5.log;
options dlcreatedir; 
%PUT &LOG_PATH;
/*=========================================*/





proc printto log="&LOG_PATH" new;
run;



ODS GRAPHICS OFF;
ODS NORESULTS;
ODS SELECT NONE;
FOOTNOTE " ";
ODS TITLE " ";
/*=========================================*/

data OPTION_DATA;
	SET OP.OPRA_Pseudo;
	LOB_IND= 1- AUCTION_IND;
	IF PFOF_IND=1 		then PFOF_DMM=put("YES",$3.); 		else PFOF_DMM=put("NO",$3.);
	IF DMMP_IND=1 		then DIRECTED_OF=put("YES",$3.); 	else PFOF_DMM=put("NO",$3.);
	IF AUCTION_IND=1 	then AUCTION=put("YES",$3.); 		else AUCTION=put("NO",$3.);

KEEP

MULTIPLE_IND
DATE
QUOTEDSPREAD_C
EFFECTIVESPREAD_C
PIMP_C
S_VOL
OPTION_MIDPOINT
STOCK_MIDPOINT
EQ
MMRev_C
HedgeCost
AUCTION_IND
LOB_IND
PFOF_DMM
DMMP_IND
AUCTION
AUCTION_IND
OPTION_MIDPOINT
DIRECTED_OF
PFOF_IND
;


RUN;


%MACRO SPREADS_TABLES_BASIC(DATA, LABEL,LABEL_2);


PROC SORT DATA=&DATA; BY DATE;RUN;
proc tabulate data=&DATA format=10.2 OUT=MEANS(
RENAME=(

QUOTEDSPREAD_C_MEAN		=QUOTEDSPREAD_C
EFFECTIVESPREAD_C_MEAN	=EFFECTIVESPREAD_C
PIMP_C_MEAN				=PIMP_C
S_VOL_MEAN				=S_VOL
OPTION_MIDPOINT_MEAN	=OPTION_MIDPOINT
STOCK_MIDPOINT_MEAN	=STOCK_MIDPOINT
EQ_MEAN					=EQ
MMRev_C_MEAN			=MMRev_C
HedgeCost_MEAN			=HedgeCost


))
;


VAR 


QUOTEDSPREAD_C
EFFECTIVESPREAD_C
PIMP_C
S_VOL
OPTION_MIDPOINT
STOCK_MIDPOINT
EQ
MMRev_C
HedgeCost

;

CLASS &LABEL;
	
;

TABLES 

&LABEL*QUOTEDSPREAD_C*MEAN
&LABEL*EFFECTIVESPREAD_C*MEAN
&LABEL*PIMP_C*MEAN
&LABEL*S_VOL*MEAN
&LABEL*OPTION_MIDPOINT*MEAN
&LABEL*STOCK_MIDPOINT*MEAN
&LABEL*EQ*MEAN
&LABEL*MMRev_C*MEAN
&LABEL*HedgeCost*MEAN


;
BY DATE;
RUN;





DATA MEANS;
	SET MEANS;
	DROP _PAGE_ _TYPE_ _PAGE_;
RUN;

PROC SORT DATA=MEANS; BY &LABEL;RUN;
ODS OUTPUT TTests = TTests_AUC;
ODS OUTPUT Statistics =Statistics_AUC;
PROC TTEST DATA=MEANS;
VAR 

QUOTEDSPREAD_C
EFFECTIVESPREAD_C
PIMP_C
S_VOL
OPTION_MIDPOINT
STOCK_MIDPOINT
EQ
MMRev_C
HedgeCost


;
TITLE'TTEST OF EQUALITY OF MEANS';
CLASS &LABEL;
RUN;




DATA Statistics_AUC;
	SET Statistics_AUC;
	if Class ="Diff (1-2)" & METHOD = "Satterthwaite";
	keep StdErr Variable;
run;




DATA TTests_AUC;
	SET TTests_AUC;
	IF METHOD = "Satterthwaite";
RUN;

proc sql;
	create table  TTests_AUC
	as select a.*, b.StdErr
	from TTests_AUC a left join Statistics_AUC b
	on a.variable = b.variable;
quit;



proc tabulate data=MEANS format=10.2 OUT=MEANS_2(
RENAME=(

QUOTEDSPREAD_C_MEAN		=QUOTEDSPREAD_C
EFFECTIVESPREAD_C_MEAN	=EFFECTIVESPREAD_C
PIMP_C_MEAN				=PIMP_C
S_VOL_MEAN				=S_VOL
OPTION_MIDPOINT_MEAN	=OPTION_MIDPOINT
STOCK_MIDPOINT_MEAN	=STOCK_MIDPOINT
EQ_MEAN					=EQ
MMRev_C_MEAN			=MMRev_C
HedgeCost_MEAN			=HedgeCost


))
;


VAR 



QUOTEDSPREAD_C
EFFECTIVESPREAD_C
PIMP_C
S_VOL
OPTION_MIDPOINT
STOCK_MIDPOINT
EQ
MMRev_C
HedgeCost



;

CLASS &LABEL;
	
;

TABLES 

&LABEL*QUOTEDSPREAD_C*MEAN
&LABEL*EFFECTIVESPREAD_C*MEAN
&LABEL*PIMP_C*MEAN
&LABEL*S_VOL*MEAN
&LABEL*OPTION_MIDPOINT*MEAN
&LABEL*STOCK_MIDPOINT*MEAN
&LABEL*EQ*MEAN
&LABEL*MMRev_C*MEAN
&LABEL*HedgeCost*MEAN
;


RUN;



PROC SORT DATA=MEANS_2;BY &LABEL;RUN;
DATA MEANS_2;
	SET MEANS_2;
	BY &LABEL;

	DROP _TYPE_ _PAGE_ _TABLE_;
RUN;
proc transpose data=means_2 out=means_2_T; ID &LABEL;RUN;


DATA MEANS_2_T;
	SET MEANS_2_T;
	DIFF = YES - NO;
	_NAME_=COMPRESS(_NAME_);
RUN;



DATA MEANS_2_T;
	SET MEANS_2_T;
	

	IF _NAME_	="QUOTEDSPREAD_C" 		THEN N=1;
	IF _NAME_	="EFFECTIVESPREAD_C" 	THEN N=2;
	IF _NAME_	="PIMP_C" 				THEN N=3;
	IF _NAME_	="S_VOL" 				THEN N=4;
	IF _NAME_	="OPTION_MIDPOINT" 		THEN N=5;
	IF _NAME_	="STOCK_MIDPOINT" 		THEN N=6;
	IF _NAME_	="EQ" 					THEN N=7;
	IF _NAME_	= "MMRev_C" 			THEN N=8;
	IF _NAME_   = "HedgeCost"			THEN N=9;

	ID ="E";

	IF n=. THEN DELETE;

RUN;

DATA MEANS_2_T;
	SET MEANS_2_T;
	RENAME _NAME_=VARIABLE;
RUN;


DATA TTests_AUC_2;
	SET TTests_AUC;

	IF VARIABLE="QUOTEDSPREAD_C" 		THEN N=1;
	IF VARIABLE="EFFECTIVESPREAD_C" 	THEN N=2;
	IF VARIABLE="PIMP_C" 				THEN N=3;
	IF VARIABLE="S_VOL" 				THEN N=4;
	IF VARIABLE="OPTION_MIDPOINT" 		THEN N=5;
	IF VARIABLE="STOCK_MIDPOINT" 		THEN N=6;
	IF VARIABLE="EQ" 					THEN N=7;
	IF VARIABLE= "MMRev_C" 				THEN N=8;
	IF VARIABLE="HedgeCost"				THEN N=9;

	

	ID ="F";

	tValue_2 = -1*tValue;
		IF n=. THEN DELETE;




	ID ="F";

	tValue_2 = -1*tValue;
		IF n=. THEN DELETE;




	keep Variable Probt id n StdErr ;
RUN;
 


	DATA TABLE;
		SET MEANS_2_T TTests_AUC_2;


RUN;

PROC SORT DATA=TABLE; BY N ID ;RUN;


PROC SQL;
	CREATE TABLE TABLE
	AS SELECT A.*, B.PROBT AS PROBT_2
	FROM TABLE A INNER JOIN TTests_AUC_2 B
	ON A.N = B.N;
QUIT;
PROC SORT DATA=TABLE; BY N ID;RUN;

	DATA TABLE;
		SET TABLE;
		BY N ID;



	IF Variable="QUOTEDSPREAD_C" 			THEN VARIABLE_2 =	put("Quoted Spread -  Cents",$168.);
	IF Variable="EFFECTIVESPREAD_C" 		THEN VARIABLE_2 = 	put("Effective Spread - Cents",$168.);
	IF Variable= "PIMP_C" 					THEN VARIABLE_2 = 	put("Price Improvement -  Cents",$168.);
	IF Variable="S_VOL"          			THEN VARIABLE_2 =	put("Trade size  Contracts - $",$120.);
	IF Variable="OPTION_MIDPOINT"  			THEN VARIABLE_2 =   put("Trade Price  - $",$120.);
	IF Variable="STOCK_MIDPOINT"  			THEN VARIABLE_2 =   put("Stock Midpoint  - $",$120.);
	IF Variable="EQ"  						THEN VARIABLE_2 =   put("EQ  ",$120.);
	IF Variable="MMRev_C"  					THEN VARIABLE_2 =   put("Market Maker Revenues -  Cents ",$120.);
	IF Variable="HedgeCost"  				THEN VARIABLE_2 =   put("Hedge Cost -  Cents ",$120.);





	

		IF PROBT_2<=0.001 & 	ID="E" THEN DIFF_CHAR=CATS(PUT(DIFF,8.2),"\threeS");
		ELSE IF PROBT_2<=0.05 & ID="E" THEN DIFF_CHAR=CATS(PUT(DIFF,8.2),"\twoS");
		ELSE IF PROBT_2<=0.10 & ID="E" THEN DIFF_CHAR=CATS(PUT(DIFF,8.2),"\oneS");
		ELSE IF PROBT_2>0.10 & 	ID="E" THEN DIFF_CHAR=CATS(PUT(DIFF,8.2));


		IF ID="F" THEN DO; DIFF_char = CATS('& (',PUT(StdErr,8.2),")");TYPE=" "; VARIABLE_2 = put(" ",$168.); END;

		FORMAT VARIABLE_2 $168.;



		FORMAT VARIABLE_2 $168.;
		

RUN;







proc tabulate data=&DATA  format=10.2 OUT=MEANS_FULL(
RENAME=(


QUOTEDSPREAD_C_MEAN		=QUOTEDSPREAD_C
EFFECTIVESPREAD_C_MEAN	=EFFECTIVESPREAD_C
PIMP_C_MEAN				=PIMP_C
S_VOL_MEAN				=S_VOL
OPTION_MIDPOINT_MEAN	=OPTION_MIDPOINT
STOCK_MIDPOINT_MEAN	=STOCK_MIDPOINT
EQ_MEAN					=EQ
MMRev_C_MEAN			=MMRev_C
HedgeCost_MEAN			=HedgeCost



)
)


;


VAR 

	
QUOTEDSPREAD_C
EFFECTIVESPREAD_C
PIMP_C
S_VOL
OPTION_MIDPOINT
STOCK_MIDPOINT
EQ
MMRev_C
HedgeCost


;


TABLES 



QUOTEDSPREAD_C*MEAN
EFFECTIVESPREAD_C*MEAN
PIMP_C*MEAN
S_VOL*MEAN
OPTION_MIDPOINT*MEAN
STOCK_MIDPOINT*MEAN
EQ*MEAN
MMRev_C*MEAN
HedgeCost*MEAN



;


BY DATE;



;

 RUN;



proc tabulate data=MEANS_FULL  format=10.2 OUT=MEANS_2_FULL(
RENAME=(

QUOTEDSPREAD_C_MEAN=QUOTEDSPREAD_C
EFFECTIVESPREAD_C_MEAN=EFFECTIVESPREAD_C
PIMP_C_MEAN=PIMP_C
S_VOL_MEAN=S_VOL
OPTION_MIDPOINT_MEAN=OPTION_MIDPOINT
STOCK_MIDPOINT_MEAN=STOCK_MIDPOINT
EQ_MEAN=EQ
MMRev_C_MEAN=MMRev_C
HedgeCost_MEAN=HedgeCost


))
;


VAR 

	

QUOTEDSPREAD_C
EFFECTIVESPREAD_C
PIMP_C
S_VOL
OPTION_MIDPOINT
STOCK_MIDPOINT
EQ
MMRev_C
HedgeCost

;


TABLES 






QUOTEDSPREAD_C*MEAN
EFFECTIVESPREAD_C*MEAN
PIMP_C*MEAN
S_VOL*MEAN
OPTION_MIDPOINT*MEAN
STOCK_MIDPOINT*MEAN
EQ*MEAN
MMRev_C*MEAN
HedgeCost*MEAN




;



;

 RUN;




DATA MEANS_2_FULL;
	SET MEANS_2_FULL;

	DROP _TYPE_ _PAGE_ _TABLE_;
RUN;
proc transpose data=means_2_FULL out=means_2_T_FULL; RUN;


DATA means_2_T_FULL;
	SET means_2_T_FULL;
	ID ="E";
RUN;

PROC SQL;	
CREATE TABLE TABLE_FULL
AS SELECT A.*, B.COL1 AS FULL_SAMPLE
FROM TABLE A LEFT JOIN means_2_T_FULL B
ON
A.VARIABLE = B._NAME_ & A.ID = B.ID;
QUIT;








DATA TABLE_FULL;
	SET TABLE_FULL;

IF ID="E" THEN FULL_char = CATS(PUT(FULL_SAMPLE,8.2));
IF ID="E" THEN YES_CHAR=  CATS(PUT(YES,8.2));
IF ID="E" THEN NO_CHAR=  CATS(PUT(NO,8.2));
RUN;





proc sort data=table_full; by N ID;RUN;

proc sort data=table_full OUT=&LABEL_2; BY N ID;RUN;



%MEND SPREADS_TABLES_BASIC;



%SPREADS_TABLES_BASIC(OPTION_DATA, AUCTION, BY_AUCTION_MEANS)


DATA AUCTION;
	SET OPTION_DATA;
	IF AUCTION="YES";
RUN;
	


%SPREADS_TABLES_BASIC(AUCTION, PFOF_DMM, BY_PFOF_AUCTION)


DATA AUCTION_ONLY_DOF;
	SET OPTION_DATA;

	IF DIRECTED_OF="YES";
	IF AUCTION="YES";
RUN;


%SPREADS_TABLES_BASIC(AUCTION_ONLY_DOF,PFOF_DMM, BY_DOF_MEANS_AUCTION);



PROC SQL;
	CREATE TABLE SPREAD_AUCTION
	AS SELECT
	A.VARIABLE_2,
	A.N,
	A.YES_CHAR AS AUC,
	B.YES_char as AUC_PFOF,
	B.NO_char as DOF_AUC_NPFOF,
	C.NO_CHAR as COMBINED_NPFOF,
	B.DIFF_CHAR AS DIFF_CHAR_1,
	C.DIFF_CHAR AS DIFF_CHAR_2


	FROM BY_AUCTION_MEANS A INNER JOIN BY_DOF_MEANS_AUCTION B
	ON A.N=B.N & A.ID=B.ID
	INNER JOIN BY_PFOF_AUCTION  C
	ON A.N=C.N & A.ID = C.ID

;
QUIT;



DATA SPREAD_AUCTION;
	SET SPREAD_AUCTION;
	char_2dash= put("\\",$12.);
RUN;



/*=========================================*/
ODS GRAPHICS OFF;
ODS RESULTS;
ODS SELECT ALL;
ODS TITLE "Table 5: Execution Costs (Pseudo Data) - PANEL A";
FOOTNOTE "This table presents execution costs for trades that execute in auctions or continuous trading using pseudo OPRA data provided online.";

PROC REPORT data=SPREAD_AUCTION ;
COLUMNS
VARIABLE_2

AUC
AUC_PFOF
COMBINED_NPFOF
DIFF_CHAR_2
char_2dash

;

 
 DEFINE VARIABLE_2  / DISPLAY "Group" format =$168.;
 DEFINE AUC /DISPLAY "All" format =$168.;
 DEFINE AUC_PFOF / DISPLAY "PFOF" format =$168.;
 DEFINE COMBINED_NPFOF  / DISPLAY "NPFOF" format =$168.;
 DEFINE DIFF_CHAR_2  / DISPLAY "PFOF - NPFOF" format =$168.;
 DEFINE char_2dash  / DISPLAY "\\" format =$168.;

 RUN;

/*=========================================*/
 ODS TITLE " ";
FOOTNOTE " "
ODS GRAPHICS OFF;
ODS NORESULTS;
ODS SELECT NONE;















DATA LOB_ONLY_DOF;
	SET OPTION_DATA;

	IF DIRECTED_OF="YES";

	IF AUCTION="NO";
RUN;


%SPREADS_TABLES_BASIC(LOB_ONLY_DOF,PFOF_DMM, BY_DOF_MEANS_LOB);




DATA LOB;
	SET OPTION_DATA;
	IF AUCTION="NO";
RUN;
	


%SPREADS_TABLES_BASIC(LOB, PFOF_DMM, BY_PFOF_LOB)




PROC SQL;
	CREATE TABLE TABLE_SPREAD_LOB
	AS SELECT
	A.ID,
	A.VARIABLE_2,
	A.N,
	A.NO_CHAR AS LOB,
	B.YES_char as LOB_PFOF,
	B.NO_char as DOF_LOB_NPFOF,
	C.NO_CHAR as COMBINED_NPFOF,
	B.DIFF_CHAR AS DIFF_CHAR_1,
	C.DIFF_CHAR AS DIFF_CHAR_2



	FROM BY_AUCTION_MEANS A INNER JOIN BY_DOF_MEANS_LOB B
	ON A.N=B.N & A.ID=B.ID
	INNER JOIN BY_PFOF_LOB C
	ON A.N=C.N & A.ID = C.ID

;
QUIT;



DATA  TABLE_SPREAD_LOB;
	SET  TABLE_SPREAD_LOB;
	char_2dash= put("\\",$12.);
RUN;

/*=========================================*/
ODS GRAPHICS OFF;
ODS RESULTS;
ODS SELECT ALL;
ODS TITLE "Table 5: Execution Costs (Pseudo Data) - PANEL B";
FOOTNOTE "This table presents execution costs for trades that execute in auctions or continuous trading using pseudo OPRA data provided online.";
PROC REPORT data=TABLE_SPREAD_LOB ;
 COLUMNS
VARIABLE_2

LOB
LOB_PFOF
COMBINED_NPFOF
DIFF_CHAR_2
char_2dash


;

 
 DEFINE VARIABLE_2  / DISPLAY "Group" format =$168.;
 DEFINE LOB /DISPLAY "All" format =$168.;
 DEFINE LOB_PFOF / DISPLAY "PFOF" format =$168.;
 DEFINE COMBINED_NPFOF  / DISPLAY "NPFOF" format =$168.;
 DEFINE DIFF_CHAR_2  / DISPLAY "PFOF - NPFOF" format =$168.;
 DEFINE char_2dash  / DISPLAY "\\" format =$168.;


 RUN;


/*=========================================*/
 ODS TITLE " ";
FOOTNOTE " ";
ODS GRAPHICS OFF;
ODS NORESULTS;
ODS SELECT NONE;



 









/*=================================================================*/
/*TABLE A5*/
/*=================================================================*/


DATA OPTION_DATA_AUCTIONS;
	SET OPTION_DATA;
	IF AUCTION_IND=1;
RUN;


DATA  OPTION_DATA_AUCTIONS_0C;
	SET  OPTION_DATA_AUCTIONS;

	IF round(input(PImp_C,best12.),1)=0;

	IF PFOF_IND=1 THEN PFOF_DMM=put("Yes",$3.);
	ELSE PFOF_DMM=put("No",$3.);

RUN;


%SPREADS_TABLES_BASIC(OPTION_DATA_AUCTIONS_0C,PFOF_DMM, BY_PFOF_AUCTION_0C);












PROC SQL;
	CREATE TABLE TABLE_0C
	AS SELECT
	VARIABLE_2,
	N,
	FULL_char AS AUC,
	YES_char as AUC_PFOF,
	NO_CHAR as COMBINED_NPFOF,
	DIFF_CHAR AS DIFF_CHAR_2

	FROM BY_PFOF_AUCTION_0C

;
QUIT;


ODS GRAPHICS OFF;
ODS RESULTS;
ODS SELECT ALL;
ODS TITLE "Appendix TABLE A5: PANEL A";
PROC REPORT data=TABLE_0C ;
 COLUMNS
VARIABLE_2


AUC
AUC_PFOF
COMBINED_NPFOF
DIFF_CHAR_2

;

 
 DEFINE VARIABLE_2  / DISPLAY "Group" format =$168.;
 DEFINE AUC /DISPLAY "All" format =$168.;
 DEFINE AUC_PFOF / DISPLAY "PFOF" format =$168.;
 DEFINE COMBINED_NPFOF  / DISPLAY "NPFOF" format =$168.;
 DEFINE DIFF_CHAR_2  / DISPLAY "PFOF - NPFOF" format =$168.;

 RUN;

/*=========================================*/
ODS GRAPHICS OFF;
ODS NORESULTS;
ODS SELECT NONE;













DATA  OPTION_DATA_AUCTIONS_1C;
	SET  OPTION_DATA_AUCTIONS;

	IF round(input(PImp_C,best12.),1)=1;

	IF PFOF_IND=1 THEN PFOF_DMM=put("Yes",$3.);
	ELSE PFOF_DMM=put("No",$3.);

RUN;


%SPREADS_TABLES_BASIC(OPTION_DATA_AUCTIONS_1C,PFOF_DMM, BY_PFOF_AUCTION_1C);





PROC SQL;
	CREATE TABLE TABLE_1C
	AS SELECT
	VARIABLE_2,
	N,
	FULL_char AS AUC,
	YES_char as AUC_PFOF,
	NO_CHAR as COMBINED_NPFOF,
	DIFF_CHAR AS DIFF_CHAR_2


	FROM  BY_PFOF_AUCTION_1C

;
QUIT;


ODS GRAPHICS OFF;
ODS RESULTS;
ODS SELECT ALL;
ODS TITLE "Appendix TABLE A5: PANEL B";
PROC REPORT data=TABLE_1C;
 COLUMNS
VARIABLE_2


AUC
AUC_PFOF
COMBINED_NPFOF
DIFF_CHAR_2

;

 
 DEFINE VARIABLE_2  / DISPLAY "Group" format =$168.;
 DEFINE AUC /DISPLAY "ALL" format =$168.;
 DEFINE AUC_PFOF / DISPLAY "PFOF" format =$168.;
  DEFINE COMBINED_NPFOF  / DISPLAY "NPFOF" format =$168.;
 DEFINE DIFF_CHAR_2  / DISPLAY "PFOF - NPFOF" format =$168.;

 RUN;
/*=========================================*/
ODS GRAPHICS OFF;
ODS NORESULTS;
ODS SELECT NONE;





DATA OPTION_DATA_AUCTIONS;
	SET OPTION_DATA_AUCTIONS;
	IF  MULTIPLE_IND=1 THEN MULTIPLE=PUT("Yes",$12.);
	ELSE MULTIPLE=PUT("No",$12.);
RUN;


DATA OPTION_DATA_AUCTIONS_M;
	SET OPTION_DATA_AUCTIONS;

	IF MULTIPLE="Yes";

	IF PFOF_IND=1 THEN PFOF_DMM=put("Yes",$3.);
	ELSE PFOF_DMM=put("No",$3.);

RUN;

													
%SPREADS_TABLES_BASIC( OPTION_DATA_AUCTIONS_M,PFOF_DMM, BY_PFOF_AUCTION_MULTIPLE);

PROC SQL;
	CREATE TABLE TABLE_M
	AS SELECT
	VARIABLE_2,
	N,
	FULL_char AS AUC,
	YES_char as AUC_PFOF,
	NO_CHAR as COMBINED_NPFOF,
	DIFF_CHAR AS DIFF_CHAR_2

	FROM BY_PFOF_AUCTION_MULTIPLE

;
QUIT;



ODS GRAPHICS OFF;
ODS RESULTS;
ODS SELECT ALL;
ODS TITLE "Appendix TABLE A5: PANEL C";
PROC REPORT data=TABLE_M ;
 COLUMNS
VARIABLE_2


AUC
AUC_PFOF
COMBINED_NPFOF
DIFF_CHAR_2

;

 
 DEFINE VARIABLE_2  / DISPLAY "Group" format =$168.;
 DEFINE AUC /DISPLAY "All" format =$168.;
 DEFINE AUC_PFOF / DISPLAY "PFOF" format =$168.;
 DEFINE COMBINED_NPFOF  / DISPLAY "NPFOF" format =$168.;
 DEFINE DIFF_CHAR_2  / DISPLAY "PFOF - Non-PFOF" format =$168.;

 RUN;
/*=========================================*/
/*=========================================*/
FOOTNOTE " ";
ODS TITLE " ";






proc printto log=log;
run;


